function myNew(fn){
    // 1. 创建一个新对象
    var obj = Object.create(fn.prototype); 

    Con = [].shift.call(arguments)
    // 2. 新对象的原型指向构造函数的原型对象
    obj.__proto__ = Con.prototype;
    // 3. 执行构造函数并保存执行结果
    const res = Con.apply(obj,arguments)
    // 4. 判断执行结果是否为对象,如果是对象，返回执行结果，否则返回新对象
    return typeof res == 'object' ? res : obj
}